#include "compile_run.hpp"
#include "../comm/httplib.h"

using namespace compile_and_run;
using namespace httplib;
void Usage(std::string proc)
{
    std::cerr << "Usage: " << "\n\t" << proc << " port" << std::endl;
}

int main(int argc, char *argv[]){
    Server svr;

    svr.Get("/hello",[](const Request& req,Response& resp){
        resp.set_content("hello httplib","content-type: text/plain;charset=utf-8");
    });

    svr.Post("/compile_and_run",[](const Request& req,Response&resp){
        //请求想要的正文
        std::string in_json=req.body;
        std::string out_json;
        if(!in_json.empty()){
            CompileAndRun::Start(in_json,&out_json);
            resp.set_content(out_json,"application/json;charset=utf-8");
        }
    });
    std::cout<<"监听状态"<<std::endl;
    svr.listen("0.0.0.0", atoi(argv[1]));
    return 0;
}






//测试
// int main()
// {
//     std::string in_json;
//     Json::Value in_value;
//     // R"()", raw string
//     in_value["code"] = R"(#include<iostream>
// int main(){
// std::cout << "你可以看⻅我了" << std::endl;
// return 0;
// })";
//     in_value["input"] = "";
//     in_value["cpu_limit"] = 1;
//     in_value["mem_limit"] = 10240 * 3;
//     Json::FastWriter writer;
//     in_json = writer.write(in_value);
//     std::cout << in_json << std::endl;
//     // 这个是将来给客⼾端返回的json串
//     std::string out_json;
//     CompileAndRun::Start(in_json, &out_json);
//     std::cout << out_json << std::endl;
//     return 0;
// }